package com.example.admin.model;


import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class UmsResourceExample {
   protected String orderByClause;

   protected boolean distinct;

   protected List<Criteria> oredCriteria;

   public UmsResourceExample() {
      oredCriteria = new ArrayList<>();
   }

   public void setOrderByClause(String orderByClause) {
      this.orderByClause = orderByClause;
   }

   public String getOrderByClause() {
      return orderByClause;
   }

   public void setDistinct(boolean distinct) {
      this.distinct = distinct;
   }

   public boolean isDistinct() {
      return distinct;
   }

   public List<Criteria> getOredCriteria() {
      return oredCriteria;
   }

   public void or(Criteria criteria) {
      oredCriteria.add(criteria);
   }

   public Criteria or() {
      Criteria criteria = createCriteriaInternal();
      oredCriteria.add(criteria);
      return criteria;
   }

   public Criteria createCriteria() {
      Criteria criteria = createCriteriaInternal();
      if (oredCriteria.size() == 0) {
         oredCriteria.add(criteria);
      }
      return criteria;
   }

   protected Criteria createCriteriaInternal() {
      Criteria criteria = new Criteria();
      return criteria;
   }

   public void clear() {
      oredCriteria.clear();
      orderByClause = null;
      distinct = false;
   }

   protected abstract static class GeneratedCriteria {
      protected List<Criterion> criteria;

      protected GeneratedCriteria() {
         super();
         criteria = new ArrayList<>();
      }

      public boolean isValid() {
         return criteria.size() > 0;
      }

      public List<Criterion> getAllCriteria() {
         return criteria;
      }

      public List<Criterion> getCriteria() {
         return criteria;
      }

      protected void addCriterion(String condition) {
         if (condition == null) {
            throw new RuntimeException("Value for condition cannot be null");
         }
         criteria.add(new Criterion(condition));
      }

      protected void addCriterion(String condition, Object value, String property) {
         if (value == null) {
            throw new RuntimeException("Value for " + property + " cannot be null");
         }
         criteria.add(new Criterion(condition, value));
      }

      protected void addCriterion(String condition, Object value1, Object value2, String property) {
         if (value1 == null || value2 == null) {
            throw new RuntimeException("Between values for " + property + " cannot be null");
         }
         criteria.add(new Criterion(condition, value1, value2));
      }

      public Criteria andIdIsNull() {
         addCriterion("id is null");
         return (Criteria) this;
      }

      public Criteria andIdIsNotNull() {
         addCriterion("id is not null");
         return (Criteria) this;
      }

      public Criteria andIdEqualTo(Long value) {
         addCriterion("id =", value, "id");
         return (Criteria) this;
      }

      public Criteria andIdNotEqualTo(Long value) {
         addCriterion("id <>", value, "id");
         return (Criteria) this;
      }

      public Criteria andIdGreaterThan(Long value) {
         addCriterion("id >", value, "id");
         return (Criteria) this;
      }

      public Criteria andIdGreaterThanOrEqualTo(Long value) {
         addCriterion("id >=", value, "id");
         return (Criteria) this;
      }

      public Criteria andIdLessThan(Long value) {
         addCriterion("id <", value, "id");
         return (Criteria) this;
      }

      public Criteria andIdLessThanOrEqualTo(Long value) {
         addCriterion("id <=", value, "id");
         return (Criteria) this;
      }

      public Criteria andIdIn(List<Long> values) {
         addCriterion("id in", values, "id");
         return (Criteria) this;
      }

      public Criteria andIdNotIn(List<Long> values) {
         addCriterion("id not in", values, "id");
         return (Criteria) this;
      }

      public Criteria andIdBetween(Long value1, Long value2) {
         addCriterion("id between", value1, value2, "id");
         return (Criteria) this;
      }

      public Criteria andIdNotBetween(Long value1, Long value2) {
         addCriterion("id not between", value1, value2, "id");
         return (Criteria) this;
      }

      public Criteria andCreateTimeIsNull() {
         addCriterion("create_time is null");
         return (Criteria) this;
      }

      public Criteria andCreateTimeIsNotNull() {
         addCriterion("create_time is not null");
         return (Criteria) this;
      }

      public Criteria andCreateTimeEqualTo(Date value) {
         addCriterion("create_time =", value, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeNotEqualTo(Date value) {
         addCriterion("create_time <>", value, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeGreaterThan(Date value) {
         addCriterion("create_time >", value, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
         addCriterion("create_time >=", value, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeLessThan(Date value) {
         addCriterion("create_time <", value, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
         addCriterion("create_time <=", value, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeIn(List<Date> values) {
         addCriterion("create_time in", values, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeNotIn(List<Date> values) {
         addCriterion("create_time not in", values, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeBetween(Date value1, Date value2) {
         addCriterion("create_time between", value1, value2, "createTime");
         return (Criteria) this;
      }

      public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
         addCriterion("create_time not between", value1, value2, "createTime");
         return (Criteria) this;
      }

      public Criteria andNameIsNull() {
         addCriterion("name is null");
         return (Criteria) this;
      }

      public Criteria andNameIsNotNull() {
         addCriterion("name is not null");
         return (Criteria) this;
      }

      public Criteria andNameEqualTo(String value) {
         addCriterion("name =", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameNotEqualTo(String value) {
         addCriterion("name <>", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameGreaterThan(String value) {
         addCriterion("name >", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameGreaterThanOrEqualTo(String value) {
         addCriterion("name >=", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameLessThan(String value) {
         addCriterion("name <", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameLessThanOrEqualTo(String value) {
         addCriterion("name <=", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameLike(String value) {
         addCriterion("name like", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameNotLike(String value) {
         addCriterion("name not like", value, "name");
         return (Criteria) this;
      }

      public Criteria andNameIn(List<String> values) {
         addCriterion("name in", values, "name");
         return (Criteria) this;
      }

      public Criteria andNameNotIn(List<String> values) {
         addCriterion("name not in", values, "name");
         return (Criteria) this;
      }

      public Criteria andNameBetween(String value1, String value2) {
         addCriterion("name between", value1, value2, "name");
         return (Criteria) this;
      }

      public Criteria andNameNotBetween(String value1, String value2) {
         addCriterion("name not between", value1, value2, "name");
         return (Criteria) this;
      }

      public Criteria andUrlIsNull() {
         addCriterion("url is null");
         return (Criteria) this;
      }

      public Criteria andUrlIsNotNull() {
         addCriterion("url is not null");
         return (Criteria) this;
      }

      public Criteria andUrlEqualTo(String value) {
         addCriterion("url =", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlNotEqualTo(String value) {
         addCriterion("url <>", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlGreaterThan(String value) {
         addCriterion("url >", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlGreaterThanOrEqualTo(String value) {
         addCriterion("url >=", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlLessThan(String value) {
         addCriterion("url <", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlLessThanOrEqualTo(String value) {
         addCriterion("url <=", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlLike(String value) {
         addCriterion("url like", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlNotLike(String value) {
         addCriterion("url not like", value, "url");
         return (Criteria) this;
      }

      public Criteria andUrlIn(List<String> values) {
         addCriterion("url in", values, "url");
         return (Criteria) this;
      }

      public Criteria andUrlNotIn(List<String> values) {
         addCriterion("url not in", values, "url");
         return (Criteria) this;
      }

      public Criteria andUrlBetween(String value1, String value2) {
         addCriterion("url between", value1, value2, "url");
         return (Criteria) this;
      }

      public Criteria andUrlNotBetween(String value1, String value2) {
         addCriterion("url not between", value1, value2, "url");
         return (Criteria) this;
      }

      public Criteria andDescriptionIsNull() {
         addCriterion("description is null");
         return (Criteria) this;
      }

      public Criteria andDescriptionIsNotNull() {
         addCriterion("description is not null");
         return (Criteria) this;
      }

      public Criteria andDescriptionEqualTo(String value) {
         addCriterion("description =", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionNotEqualTo(String value) {
         addCriterion("description <>", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionGreaterThan(String value) {
         addCriterion("description >", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
         addCriterion("description >=", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionLessThan(String value) {
         addCriterion("description <", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionLessThanOrEqualTo(String value) {
         addCriterion("description <=", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionLike(String value) {
         addCriterion("description like", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionNotLike(String value) {
         addCriterion("description not like", value, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionIn(List<String> values) {
         addCriterion("description in", values, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionNotIn(List<String> values) {
         addCriterion("description not in", values, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionBetween(String value1, String value2) {
         addCriterion("description between", value1, value2, "description");
         return (Criteria) this;
      }

      public Criteria andDescriptionNotBetween(String value1, String value2) {
         addCriterion("description not between", value1, value2, "description");
         return (Criteria) this;
      }

      public Criteria andCategoryIdIsNull() {
         addCriterion("category_id is null");
         return (Criteria) this;
      }

      public Criteria andCategoryIdIsNotNull() {
         addCriterion("category_id is not null");
         return (Criteria) this;
      }

      public Criteria andCategoryIdEqualTo(Long value) {
         addCriterion("category_id =", value, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdNotEqualTo(Long value) {
         addCriterion("category_id <>", value, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdGreaterThan(Long value) {
         addCriterion("category_id >", value, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) {
         addCriterion("category_id >=", value, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdLessThan(Long value) {
         addCriterion("category_id <", value, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdLessThanOrEqualTo(Long value) {
         addCriterion("category_id <=", value, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdIn(List<Long> values) {
         addCriterion("category_id in", values, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdNotIn(List<Long> values) {
         addCriterion("category_id not in", values, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdBetween(Long value1, Long value2) {
         addCriterion("category_id between", value1, value2, "categoryId");
         return (Criteria) this;
      }

      public Criteria andCategoryIdNotBetween(Long value1, Long value2) {
         addCriterion("category_id not between", value1, value2, "categoryId");
         return (Criteria) this;
      }
   }

   public static class Criteria extends GeneratedCriteria {
      protected Criteria() {
         super();
      }
   }

   public static class Criterion {
      private String condition;

      private Object value;

      private Object secondValue;

      private boolean noValue;

      private boolean singleValue;

      private boolean betweenValue;

      private boolean listValue;

      private String typeHandler;

      public String getCondition() {
         return condition;
      }

      public Object getValue() {
         return value;
      }

      public Object getSecondValue() {
         return secondValue;
      }

      public boolean isNoValue() {
         return noValue;
      }

      public boolean isSingleValue() {
         return singleValue;
      }

      public boolean isBetweenValue() {
         return betweenValue;
      }

      public boolean isListValue() {
         return listValue;
      }

      public String getTypeHandler() {
         return typeHandler;
      }

      protected Criterion(String condition) {
         super();
         this.condition = condition;
         this.typeHandler = null;
         this.noValue = true;
      }

      protected Criterion(String condition, Object value, String typeHandler) {
         super();
         this.condition = condition;
         this.value = value;
         this.typeHandler = typeHandler;
         if (value instanceof List<?>) {
            this.listValue = true;
         } else {
            this.singleValue = true;
         }
      }

      protected Criterion(String condition, Object value) {
         this(condition, value, null);
      }

      protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
         super();
         this.condition = condition;
         this.value = value;
         this.secondValue = secondValue;
         this.typeHandler = typeHandler;
         this.betweenValue = true;
      }

      protected Criterion(String condition, Object value, Object secondValue) {
         this(condition, value, secondValue, null);
      }
   }
}